1. InitialingBean和DisposableBean
    InitialingBean是一个接口，提供了一个唯一的方法afterPropertiesSet()。
    DisposableBean也是一个接口，提供了一个唯一的方法destory()。
    这两个接口是一组的，功能类似，因此放在一起：前者顾名思义在Bean属性都设置完毕后调用afterPropertiesSet()方法做
    一些初始化的工作，后者在Bean生命周期结束前调用destory()方法做一些收尾工作。

        1、InitializingBean接口、Disposable接口可以和init-method、destory-method配合使用，接口执行顺序优先于配置
        2、InitializingBean接口、Disposable接口底层使用类型强转.方法名()进行直接方法调用，init-method、destory-method
        底层使用反射，前者和Spring耦合程度更高但效率高，后者解除了和Spring之间的耦合但是效率低，使用哪个看个人喜好
        3、afterPropertiesSet()方法是在Bean的属性设置之后才会进行调用，某个Bean的afterPropertiesSet()方法执行完毕才会执
        行下一个Bean的afterPropertiesSet()方法，因此不建议在afterPropertiesSet()方法中写处理时间太长的方法
2.BeanNameAware、ApplicationContextAware和BeanFactoryAware
        "Aware"的意思是"感知到的"，那么这三个接口的意思也不难理解：
        1、实现BeanNameAware接口的Bean，在Bean加载的过程中可以获取到该Bean的id
        2、实现ApplicationContextAware接口的Bean，在Bean加载的过程中可以获取到Spring的ApplicationContext，这个尤其重要，
        ApplicationContext是Spring应用上下文，从ApplicationContext中可以获取包括任意的Bean在内的大量Spring容器内容和信息
        3、实现BeanFactoryAware接口的Bean，在Bean加载的过程中可以获取到加载该Bean的BeanFactory

        1、如果你的BeanName、ApplicationContext、BeanFactory有用，那么就自己定义一个变量将它们保存下来，如果没用，那么只需要实现setXXX()方法，
        用一下Spring注入进来的参数即可
        2、如果Bean同时还实现了InitializingBean，容器会保证BeanName、ApplicationContext和BeanFactory在调用afterPropertiesSet()方法被注入

3.FactoryBean
        FactoryBean在Spring中是非常有用的，使用Eclipse/MyEclipse的朋友可以对FactoryBean使用ctrl+t查看一下，FactoryBean这个接口在Spring容器中有大量的子实现。
        传统的Spring容器加载一个Bean的整个过程，都是由Spring控制的，换句话说，开发者除了设置Bean相关属性之外，是没有太多的自主权的。FactoryBean改变了这一点，
        开发者可以个性化地定制自己想要实例化出来的Bean，方法就是实现FactoryBean接口。

        看到最后得到的并不是FactoryBean本身，而是FactoryBean的泛型对象，这就是FactoryBean的作用。FactoryBean的几个方法：
        1、getObject()方法是最重要的，控制Bean的实例化过程
        2、getObjectType()方法获取接口返回的实例的class
        3、isSingleton()方法获取该Bean是否为一个单例的Bean
        像我这段代码的功能就是传入一个String类型的参数，可以动态控制生成出来的是接口的哪种子类。有了FactoryBean，
        同样的我们也可以灵活地操控Bean的生成。

4.BeanPostProcessor
        之前的InitializingBean、DisposableBean、FactoryBean包括init-method和destory-method，针对的都是某个Bean控制其初始化的操作，而似乎没有一种办法可以针对每个
        Bean的生成前后做一些逻辑操作，PostProcessor则帮助我们做到了这一点，先看一个简单的BeanPostProcessor。


5.BeanFactoryPostProcessor


6.InstantiationAwareBeanPostProcessor